"""
______________________________
time：2021/7/8
______________________________

"""
from time import sleep

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction

"""
多点触控：比如图片放大、缩小
实际上是多个单点触控   
通过MultiAction类来实现，它只有两个行为：

1.add 将单点触控添加
2.perform 同时执行所有的单点触控
"""

from appium.webdriver.common.multi_action import MultiAction

desired_caps = {
    "automationName": "UiAutomator2",
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "Oppo_phone",
    "appPackage": "com.baidu.BaiduMap",  # 通过包名绑定对应app
    "appActivity": "com.baidu.baidumaps.WelcomeScreen",  # app自动化测试的好处不用登陆，直接设置好页面就不用次次登录；
    "noReset": True
}
# 跟appium建立连接然后把启动参数发给它
driver = webdriver.Remote(
    command_executor="http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_caps)
sleep(5)

size = driver.get_window_size()  # 设备大小
ma = MultiAction(driver)  # 实例化多点触控类

# 第一个touchAction——从正中心向左下角滑动
ta1 = TouchAction(driver)
ta1.press(x=size["width"] * 0.5, y=size["height"] * 0.5).wait(200). \
    move_to(x=size["width"] * 0.1, y=size["height"] * 0.9).wait(200).release()
# ——从正中心向右上角滑动
ta2 = TouchAction(driver)
ta2.press(x=size["width"] * 0.5, y=size["height"] * 0.5).wait(200). \
    move_to(x=size["width"] * 0.1, y=size["height"] * 0.9).wait(200).release()

ma.add(ta1, ta2)  # 加入到多点触控当中
ma.perform()  # 执行

sleep(5)
# driver.quit()
